package com.hmy.finance.service.receipt;

import com.hmy.ccp.common.response.BasePageResponse;
import com.hmy.finance.api.bo.core.request.receiptOffset.*;
import com.hmy.finance.api.bo.core.response.receiptOffset.*;
import com.hmy.finance.service.receipt.dto.receiptOffset.ReceiptBillOffsetHandlerDto;

import java.util.List;

/**
 * @author loqel
 * @description 针对表【receipt_offset_bill(收款核销申请单)】的数据库操作Service
 * @createDate 2024-04-11 11:33:19
 */
public interface ReceiptOffsetBillService {

    /*分页查询收款核销单列表-boss*/
    BasePageResponse<ReceiptOffsetBillResponse> queryReceiptOffsetBillPageInfosByBoss(ReceiptOffsetBillBossPageQueryRequest receiptOffsetBillBossPageQueryRequest);

    /*分页查询收款核销单列表-app*/
    BasePageResponse<ReceiptOffsetBillAppPageQueryResponse> queryReceiptOffsetBillPageInfosByApp(ReceiptOffsetBillAppPageQueryRequest receiptOffsetBillAppPageQueryRequest);

    /*收款核销详情*/
    ReceiptOffsetBillDetailResponse queryReceiptOffsetBillDetail(ReceiptOffsetBillDetailQueryRequest receiptOffsetBillDetailQueryRequest);

    /*审批中的count核销单查询*/
    List<AuditingReceiptOffsetBillQueryResponse> queryAuditingReceiptOffsetBills(AuditingReceiptOffsetBillCountQueryRequest auditingReceiptOffsetBillCountQueryRequest);

    /*新增-提交收款核销申请*/
    ReceiptOffsetBillCreateResponse createReceiptOffsetBill(ReceiptOffsetBillCreateRequest receiptOffsetBillCreateRequest);

    /*编辑-提交收款核销申请*/
    ReceiptOffsetBillEditResponse editReceiptOffsetBill(ReceiptOffsetBillEditRequest receiptOffsetBillEditRequest);

    /*删除收款核销申请*/
    ReceiptOffsetBillDeleteResponse deleteReceiptOffsetBill(ReceiptOffsetBillDeleteRequest receiptOffsetBillDeleteRequest);

    /*查询指定客户+联系人下收款核销方案*/
    ContactorApportionsQueryResponse queryContactorApportions(ContactorApportionsQueryRequest contactorApportionsQueryRequest);

    /*审批完成后的核销处理器*/
    Boolean doReceiptBillOffsetHandler(ReceiptBillOffsetHandlerDto receiptBillOffsetHandlerDto);


    List<ReceiptedTypeEnumResponse> getReceiptedTypeEnums();


}
